package net.mfjassociates.finance.domain.mfjfin_newdb;

import java.math.BigDecimal;
import java.sql.Clob;
import java.util.Date;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.roo.addon.dbre.RooDbManaged;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
import org.springframework.roo.addon.tostring.RooToString;

@RooJavaBean
@RooToString
@RooJpaActiveRecord(entityName="net.mfjassociates.finance.domain.mfjfin_newdb.ExpenseReports", versionField = "", table = "ExpenseReports", schema = "dbo")
public class ExpenseReports {

	@OneToMany(mappedBy = "expenseReportId")
    private Set<ExpenseDetails> expenseDetailss;

	@ManyToOne
    @JoinColumn(name = "EmployeeID", referencedColumnName = "EmployeeID")
    private Employees employeeId;

	@Column(name = "ExpenseType", length = 50)
    private String expenseType;

	@Column(name = "ExpenseRptName", length = 30)
    private String expenseRptName;

	@Column(name = "ExpenseRptDescr")
    @Lob
    private Clob expenseRptDescr;

	@Column(name = "DateSubmitted")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "M-")
    private Date dateSubmitted;

	@Column(name = "AdvanceAmount", precision = 19, scale = 4)
    private BigDecimal advanceAmount;

	@Column(name = "DepartmentCharged", length = 30)
    private String departmentCharged;

	@Column(name = "BusinessPurpose")
    @Lob
    private Clob businessPurpose;

	@Column(name = "Paid")
    private Boolean paid;

	@Column(name = "PaidConfirmation", length = 50)
    private String paidConfirmation;

	public Set<ExpenseDetails> getExpenseDetailss() {
        return expenseDetailss;
    }

	public void setExpenseDetailss(Set<ExpenseDetails> expenseDetailss) {
        this.expenseDetailss = expenseDetailss;
    }

	public Employees getEmployeeId() {
        return employeeId;
    }

	public void setEmployeeId(Employees employeeId) {
        this.employeeId = employeeId;
    }

	public String getExpenseType() {
        return expenseType;
    }

	public void setExpenseType(String expenseType) {
        this.expenseType = expenseType;
    }

	public String getExpenseRptName() {
        return expenseRptName;
    }

	public void setExpenseRptName(String expenseRptName) {
        this.expenseRptName = expenseRptName;
    }

	public Clob getExpenseRptDescr() {
        return expenseRptDescr;
    }

	public void setExpenseRptDescr(Clob expenseRptDescr) {
        this.expenseRptDescr = expenseRptDescr;
    }

	public Date getDateSubmitted() {
        return dateSubmitted;
    }

	public void setDateSubmitted(Date dateSubmitted) {
        this.dateSubmitted = dateSubmitted;
    }

	public BigDecimal getAdvanceAmount() {
        return advanceAmount;
    }

	public void setAdvanceAmount(BigDecimal advanceAmount) {
        this.advanceAmount = advanceAmount;
    }

	public String getDepartmentCharged() {
        return departmentCharged;
    }

	public void setDepartmentCharged(String departmentCharged) {
        this.departmentCharged = departmentCharged;
    }

	public Clob getBusinessPurpose() {
        return businessPurpose;
    }

	public void setBusinessPurpose(Clob businessPurpose) {
        this.businessPurpose = businessPurpose;
    }

	public Boolean getPaid() {
        return paid;
    }

	public void setPaid(Boolean paid) {
        this.paid = paid;
    }

	public String getPaidConfirmation() {
        return paidConfirmation;
    }

	public void setPaidConfirmation(String paidConfirmation) {
        this.paidConfirmation = paidConfirmation;
    }
}
